/**
 * 将本地时间转换到指定时区
 * @param {string|Date} date 本地时间或日期对象
 * @param {string} targetTimeZone 目标时区，如 'America/New_York'、'Asia/Shanghai'
 * @returns {string} 转换后的 ISO 字符串（含时区偏移）
 */
// 时区转换
function convertLocalToTimeZone(date, targetTimeZone) {
  const d = new Date(date);
  return new Intl.DateTimeFormat('en-CA', {
    timeZone: targetTimeZone,
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false
  }).format(d).replace(', ', 'T');
}
// 日期格式化成YYYY-MM-DD HH:mm:ss
function formatDateTimeManual(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
// 示例：将当前本地时间转换为东京时间
console.log('当前本地时间:', new Date().toISOString());
console.log('当前本地时间:', new Date().toLocaleString());
console.log('转换为东京时间:', convertLocalToTimeZone(new Date(), 'Asia/Tokyo'));
console.log('带选项的用法:', new Date().toLocaleString('zh-CN', {
  year: 'numeric',
  month: 'long',  // 显示完整月份名称
  day: 'numeric',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit'
}))
console.log(formatDateTimeManual(new Date()))

